package com.dp.shared;

/**
 * <p>
 * FieldVerifier validates that the name the user enters is valid.
 * </p>
 * <p>
 * This class is in the <code>shared</code> package because we use it in both
 * the client code and on the server. On the client, we verify that the name is
 * valid before sending an RPC request so the user doesn't have to wait for a
 * network round trip to get feedback. On the server, we verify that the name is
 * correct to ensure that the input is correct regardless of where the RPC
 * originates.
 * </p>
 * <p>
 * When creating a class that is used on both the client and the server, be sure
 * that all code is translatable and does not use native JavaScript. Code that
 * is not translatable (such as code that interacts with a database or the file
 * system) cannot be compiled into client side JavaScript. Code that uses native
 * JavaScript (such as Widgets) cannot be run on the server.
 * </p>
 */
public class FieldVerifier {

	/**
	 * Verifies that the specified name is valid for our service.
	 * 
	 * In this example, we only require that the name is at least four
	 * characters. In your application, you can use more complex checks to ensure
	 * that usernames, passwords, email addresses, URLs, and other fields have the
	 * proper syntax.
	 * 
	 * @param name the name to validate
	 * @return true if valid, false if invalid
	 */
	public static boolean isValidName(String name) {
		if (name == null) {
			return false;
		}
		return name.length() > 3;
	}
	public static boolean isEmpty(String cad){
		if (cad == null) return true;
		cad=cad.trim();
		if ( cad .length()==0 ) return true;
		return false;
	}
	
	public static boolean isId( String id ){
		try {
			int ans = Integer.parseInt( id );
			return ans > 0 ;
		} 
		catch( Exception e ){
			return false;
		}
	}
	
	public static boolean isInteger(String numero){
		if (isEmpty(numero)) return false;
		//maxima longitud 8
		String expresion="\\d{0,12}";
		return numero.matches(expresion);
	}
	
	public static boolean isDouble(String numero){
		if (isEmpty(numero)) return false;
		//longitud de entero entre 1 y 18
		//longitud de decimal entre 1 y 12
		//-? pa negativo ff
		String expresion="^-?\\d{1,18}(?>\\.\\d{1,12})?$";
		return numero.matches(expresion);
	}
}
